Some data encoding uses high/low transitions to represent logic states. For example, a transition from a low state to a high state may represent a logic one and a transition from a high state to a low state represents a logic zero. The resulting waveform has a plurality of high and low pulses that occur between the logic transitions. In such coding schemes, the period in which the waveform is high or low is important to establish the correct timing when the waveform is decoded. For example a logic one followed by a logic zero will require a pulse that is twice as long as a pulse representing logic one followed by a logic one. If the shorter pulse is too long, it may be decoded as a logic one followed by a logic zero rather than a logic one followed by another logic one.
The coded data may be modulated for transmission to a receiver. For example, amplitude-shift key (ASK) modulation may be applied to the coded data in order to transmit the data. An inherent problem with data transmission is that the receiving antenna typically distorts the data so that the lengths of the high and low periods change slightly. These changes may cause errors when the data is demodulated. For example, the decoding process may not be able to determine if a single pulse represents a single transition or two transitions, such as a logic high followed by a logic low.